﻿Imports Heren.Common.Forms.Editor
Imports Heren.Common.Forms
Imports Heren.Common.ScriptEngine.Script
Imports Microsoft.VisualBasic
Imports System.Windows.Forms
Imports Heren.Common.Forms.Runtime
Imports System.Text
Imports Heren.Common.Libraries
Public Class 坠床跌倒事件分析表 : Inherits AbstractRuntimeHandler
    ''****************************************************************
    '' 这是护理电子病历表单后台运行支持脚本
    '' 注意：这是Visual Basic脚本，您可以不区分大小写
    '' 请不要修改系统提供的方法名，以及方法名前面的Overrides关键字
    '' Script Language : Visual Basic
    '' Author : YangMingkun, Date : 2012-3-18
    '' Copyright (C) Heren Health Services (SUPCON) Co.,Ltd.
    ''****************************************************************

    '表单脚本初始化
    Public Overrides Sub Initialize()
        'Me.ShowMessage("表单已完成加载!")
        '在此函数中来查询和设置表单中的相关数据
        '可以调用GetSystemContext函数获取系统中已有数据，也可以从数据库中读取其他任意数据

    End Sub

    '获取关键数据列表
    Public Overrides Function GetKeyDataList() As List(Of KeyData)
        Dim keyDataList As New List(Of KeyData)

        '跌倒前已列为已跌倒
        If IsRadioButtonChecked("XRadioButton1") Then
            keyDataList.Add(New KeyData("跌倒前已列为已跌倒", "否"))
        ElseIf IsRadioButtonChecked("XRadioButton2") Then
            keyDataList.Add(New KeyData("跌倒前已列为已跌倒", "是"))
        End If
        '跌倒评估总分
        If Me.GetControlText("XTextBox1") Then
            keyDataList.Add(New KeyData("跌倒评估总分", Me.GetControlText("XTextBox1")))
        End If
        '住院期间病患有无照顾者
        If IsRadioButtonChecked("XRadioButton4") Then
            keyDataList.Add(New KeyData("住院期间病患有无照顾者", "无"))
        ElseIf IsRadioButtonChecked("XRadioButton3") Then
            keyDataList.Add(New KeyData("住院期间病患有无照顾者", "有"))
        End If
        '照顾者当时是否在场
        If IsRadioButtonChecked("XRadioButton6") Then
            keyDataList.Add(New KeyData("照顾者当时是否在场", "否"))
        ElseIf IsRadioButtonChecked("XRadioButton5") Then
            keyDataList.Add(New KeyData("照顾者当时是否在场", "是"))
        End If
        '发生时病人动作
        If IsRadioButtonChecked("XRadioButton7") Then
            keyDataList.Add(New KeyData("发生时病人动作", "睡觉"))
        ElseIf IsRadioButtonChecked("XRadioButton8") Then
            keyDataList.Add(New KeyData("发生时病人动作", "闲坐"))
        ElseIf IsRadioButtonChecked("XRadioButton9") Then
            keyDataList.Add(New KeyData("发生时病人动作", "盥洗/沐浴中"))
        ElseIf IsRadioButtonChecked("XRadioButton10") Then
            keyDataList.Add(New KeyData("发生时病人动作", "如厕中"))
        ElseIf IsRadioButtonChecked("XRadioButton11") Then
            keyDataList.Add(New KeyData("发生时病人动作", "下床"))
        ElseIf IsRadioButtonChecked("XRadioButton12") Then
            keyDataList.Add(New KeyData("发生时病人动作", "移位(转换轮椅、座位、改变姿位)"))
        ElseIf IsRadioButtonChecked("XRadioButton13") Then
            keyDataList.Add(New KeyData("发生时病人动作", "站立/练站"))
        ElseIf IsRadioButtonChecked("XRadioButton14") Then
            keyDataList.Add(New KeyData("发生时病人动作", "行走/练走"))
        ElseIf IsRadioButtonChecked("XRadioButton15") Then
            keyDataList.Add(New KeyData("发生时病人动作", "在检查/治疗台上"))
        ElseIf IsRadioButtonChecked("XRadioButton16") Then
            keyDataList.Add(New KeyData("发生时病人动作", "其他"))
        End If
        '跌倒造成伤害
        Dim sz跌倒造成伤害 As StringBuilder = New StringBuilder
        If IsCheckButtonChecked("XCheckBox1") Then
            sz跌倒造成伤害.AppendFormat("{0} {1}", sz跌倒造成伤害, "无")
        ElseIf IsCheckButtonChecked("XCheckBox2") Then
            If IsCheckButtonChecked("XCheckBox3") Then
                sz跌倒造成伤害.AppendFormat("{0} {1}", sz跌倒造成伤害, "新的疼痛")
            ElseIf IsCheckButtonChecked("XCheckBox4") Then
                sz跌倒造成伤害.AppendFormat("{0} {1}", sz跌倒造成伤害, "原有疼痛加剧")
            End If
        ElseIf IsCheckButtonChecked("XCheckBox5") Then
            sz跌倒造成伤害.AppendFormat("{0} {1}", sz跌倒造成伤害, "扭伤")
        ElseIf IsCheckButtonChecked("XCheckBox6") Then
            sz跌倒造成伤害.AppendFormat("{0} {1}", sz跌倒造成伤害, "擦伤")
        ElseIf IsCheckButtonChecked("XCheckBox7") Then
            sz跌倒造成伤害.AppendFormat("{0} {1}", sz跌倒造成伤害, "瘀肿伤")
        ElseIf IsCheckButtonChecked("XCheckBox8") Then
            sz跌倒造成伤害.AppendFormat("{0} {1}", sz跌倒造成伤害, "撕裂伤")
        ElseIf IsCheckButtonChecked("XCheckBox9") Then
            sz跌倒造成伤害.AppendFormat("{0} {1}", sz跌倒造成伤害, "骨折")
        ElseIf IsCheckButtonChecked("XCheckBox10") Then
            sz跌倒造成伤害.AppendFormat("{0} {1}", sz跌倒造成伤害, "颅内伤害")
        ElseIf IsCheckButtonChecked("XCheckBox11") Then
            sz跌倒造成伤害.AppendFormat("{0} {1}", sz跌倒造成伤害, Me.GetControlText("XTextBox4"))

        End If
        If sz跌倒造成伤害.ToString() <> "" Then
            keyDataList.Add(New KeyData("跌倒造成伤害", sz跌倒造成伤害.ToString()))
        End If

        '跌倒等级
        If IsRadioButtonChecked("XRadioButton17") Then
            keyDataList.Add(New KeyData("跌伤等级", "0"))
        ElseIf IsRadioButtonChecked("XRadioButton18") Then
            keyDataList.Add(New KeyData("跌伤等级", "1"))
        ElseIf IsRadioButtonChecked("XRadioButton19") Then
            keyDataList.Add(New KeyData("跌伤等级", "2"))
        ElseIf IsRadioButtonChecked("XRadioButton20") Then
            keyDataList.Add(New KeyData("跌伤等级", "3"))
        ElseIf IsRadioButtonChecked("XRadioButton21") Then
            keyDataList.Add(New KeyData("跌伤等级", "4"))
        End If
        '主要原因分析
        '因病人健康状况引起
        Dim sz主要原因分析 As StringBuilder = New StringBuilder()
        If IsRadioButtonChecked("XRadioButton22") Then
            If IsCheckButtonChecked("XCheckBox12") Then
                sz主要原因分析.AppendFormat("{0} {1}", sz主要原因分析, "活动障碍")
            End If
            If IsCheckButtonChecked("XCheckBox13") Then
                sz主要原因分析.AppendFormat("{0} {1}", sz主要原因分析, "视力障碍")
            End If
            If IsCheckButtonChecked("XCheckBox14") Then
                sz主要原因分析.AppendFormat("{0} {1}", sz主要原因分析, "意识或认知障碍")
            End If
            If IsCheckButtonChecked("XCheckBox15") Then
                sz主要原因分析.AppendFormat("{0} {1}", sz主要原因分析, "眩晕感")
            End If
            If IsCheckButtonChecked("XCheckBox16") Then
                sz主要原因分析.AppendFormat("{0} {1}", sz主要原因分析, "虚弱无力")
            End If
            If IsCheckButtonChecked("XCheckBox17") Then
                sz主要原因分析.AppendFormat("{0} {1}", sz主要原因分析, "步态不稳")
            End If
            If IsCheckButtonChecked("XCheckBox18") Then
                sz主要原因分析.AppendFormat("{0} {1}", sz主要原因分析, "体位性低血压")
            End If
            If IsCheckButtonChecked("XCheckBox19") Then
                sz主要原因分析.AppendFormat("{0} {1}", sz主要原因分析, Me.GetControlText("XTextBox5"))
            End If
            sz主要原因分析.AppendFormat("{0}:{1}", "因病人健康状况引起", sz主要原因分析.ToString())
            keyDataList.Add(New KeyData("主要原因分析", sz主要原因分析.ToString()))
        ElseIf IsRadioButtonChecked("XRadioButton23") Then  '因手术、药物或麻醉而引起
            If IsCheckButtonChecked("XCheckBox20") Then
                sz主要原因分析.AppendFormat("{0} {1}", sz主要原因分析, "镇静安眠剂")
            End If
            If IsCheckButtonChecked("XCheckBox21") Then
                sz主要原因分析.AppendFormat("{0} {1}", sz主要原因分析, "降压药")
            End If
            If IsCheckButtonChecked("XCheckBox23") Then
                sz主要原因分析.AppendFormat("{0} {1}", sz主要原因分析, "利尿剂")
            End If
            If IsCheckButtonChecked("XCheckBox25") Then
                sz主要原因分析.AppendFormat("{0} {1}", sz主要原因分析, "止痛、麻醉剂")
            End If
            If IsCheckButtonChecked("XCheckBox27") Then
                sz主要原因分析.AppendFormat("{0} {1}", sz主要原因分析, "轻泻剂")
            End If
            If IsCheckButtonChecked("XCheckBox26") Then
                sz主要原因分析.AppendFormat("{0} {1}", sz主要原因分析, "眼药、散瞳剂")
            End If
            If IsCheckButtonChecked("XCheckBox24") Then
                sz主要原因分析.AppendFormat("{0} {1}", sz主要原因分析, "抗癫痫药")
            End If
            If IsCheckButtonChecked("XCheckBox22") Then
                sz主要原因分析.AppendFormat("{0} {1}", sz主要原因分析, "肌肉松弛剂")
            End If
            If IsCheckButtonChecked("XCheckBox28") Then
                sz主要原因分析.AppendFormat("{0} {1}", sz主要原因分析, "降血糖药")
            End If
            If IsCheckButtonChecked("XCheckBox29") Then
                sz主要原因分析.AppendFormat("{0} {1}", sz主要原因分析, "抗心律失常药")
            End If
            sz主要原因分析.AppendFormat("{0}:{1}", "因手术、药物或麻醉而引起", sz主要原因分析.ToString())
            keyDataList.Add(New KeyData("主要原因分析", sz主要原因分析.ToString()))
        End If
        If IsRadioButtonChecked("XRadioButton24") Then '因环境因素而引起
            If IsCheckButtonChecked("XCheckBox33") Then
                sz主要原因分析.AppendFormat("{0} {1}", sz主要原因分析, "地面湿滑")
            End If
            If IsCheckButtonChecked("XCheckBox34") Then
                sz主要原因分析.AppendFormat("{0} {1}", sz主要原因分析, "光线欠佳")
            End If
            If IsCheckButtonChecked("XCheckBox35") Then
                sz主要原因分析.AppendFormat("{0} {1}", sz主要原因分析, "行道有障碍物")
            End If
            If IsCheckButtonChecked("XCheckBox30") Then
                sz主要原因分析.AppendFormat("{0} 其他{1}", sz主要原因分析, Me.GetControlText("XTextBox6"))
            End If
            sz主要原因分析.AppendFormat("{0}:{1}", "因环境因素而引起", sz主要原因分析.ToString())
            keyDataList.Add(New KeyData("主要原因分析", sz主要原因分析.ToString()))
        End If
        If IsRadioButtonChecked("XRadioButton24") Then '因其他因素而引起
            Dim sz器材设备问题 As StringBuilder = New StringBuilder()
            If IsCheckButtonChecked("XCheckBox31") Then '
                If IsCheckButtonChecked("XCheckBox32") Then
                    sz器材设备问题.AppendFormat("{0} {1}", sz器材设备问题, "护栏功能故障")
                End If
                If IsCheckButtonChecked("XCheckBox37") Then
                    sz器材设备问题.AppendFormat("{0} {1}", sz器材设备问题, "辅助器材功能故障")
                End If
                If IsCheckButtonChecked("XCheckBox39") Then
                    sz器材设备问题.AppendFormat("{0} {1}", sz器材设备问题, "鞋具不合适")
                End If
                If IsCheckButtonChecked("XCheckBox41") Then
                    sz器材设备问题.AppendFormat("{0} {1}", sz器材设备问题, "未用护栏")
                End If
                If IsCheckButtonChecked("XCheckBox40") Then
                    sz器材设备问题.AppendFormat("{0} {1}", sz器材设备问题, "轮椅未固定")
                End If
                If IsCheckButtonChecked("XCheckBox38") Then
                    sz器材设备问题.AppendFormat("{0} {1}", sz器材设备问题, "辅助器材未置适当位置")
                End If
                If IsCheckButtonChecked("XCheckBox36") Then
                    sz器材设备问题.AppendFormat("{0} 其他{1}", sz器材设备问题, Me.GetControlText("XTextBox7"))
                End If
                sz器材设备问题.AppendFormat("{0}:{1}", "器材设备问题", sz器材设备问题.ToString())
            End If
            Dim sz其他问题 As StringBuilder = New StringBuilder()
            If IsCheckButtonChecked("XCheckBox42") Then
                If IsCheckButtonChecked("XCheckBox43") Then
                    sz其他问题.AppendFormat("{0} {1}", sz其他问题, "不小心踩空或失去重心")
                End If
                If IsCheckButtonChecked("XCheckBox44") Then
                    sz其他问题.AppendFormat("{0} 其他{1}", sz其他问题, Me.GetControlText("XTextBox8"))
                End If

            End If
            sz主要原因分析.AppendFormat("{0} {1}", sz器材设备问题.ToString(), sz其他问题.ToString())
            keyDataList.Add(New KeyData("主要原因分析", sz主要原因分析.ToString()))
        End If
        '检讨及改进项目
        '医疗人员问题
        Dim sz医疗人员问题 As StringBuilder = New StringBuilder()
        If IsCheckButtonChecked("XCheckBox45") Then
            sz医疗人员问题.AppendFormat("{0} {1}", sz医疗人员问题, "确认及标示病患有跌倒危险性")
        ElseIf IsCheckButtonChecked("XCheckBox46") Then
            sz医疗人员问题.AppendFormat("{0} {1}", sz医疗人员问题, "提供相关指导")
        ElseIf IsCheckButtonChecked("XCheckBox47") Then
            sz医疗人员问题.AppendFormat("{0} {1}", sz医疗人员问题, "提供防范措施")
        ElseIf IsCheckButtonChecked("XCheckBox48") Then
            sz医疗人员问题.AppendFormat("{0} {1}", sz医疗人员问题, "查房时警觉发现并协助病患之需要")
        ElseIf IsCheckButtonChecked("XCheckBox49") Then
            sz医疗人员问题.AppendFormat("{0} {1}", sz医疗人员问题, "提供轮椅、拐杖或助行器等辅助器材")
        ElseIf IsCheckButtonChecked("XCheckBox50") Then
            sz医疗人员问题.AppendFormat("{0} 其他{1}", sz医疗人员问题, Me.GetControlText("XTextBox9"))
        End If
        keyDataList.Add(New KeyData("医疗人员问题", sz医疗人员问题.ToString()))
        '照顾者问题
        Dim sz照顾者问题 As StringBuilder = New StringBuilder()
        If IsCheckButtonChecked("XCheckBox51") Then
            sz照顾者问题.AppendFormat("{0} {1}", sz照顾者问题, "了解病患安全活动之能力范围")
        ElseIf IsCheckButtonChecked("XCheckBox52") Then
            sz照顾者问题.AppendFormat("{0} {1}", sz照顾者问题, "适时提供日常活动之协助")
        ElseIf IsCheckButtonChecked("XCheckBox53") Then
            sz照顾者问题.AppendFormat("{0} {1}", sz照顾者问题, "提供防范措施")
        ElseIf IsCheckButtonChecked("XCheckBox54") Then
            sz照顾者问题.AppendFormat("{0} {1}", sz照顾者问题, "照顾者离开病患时需告知护理人员")
        ElseIf IsCheckButtonChecked("XCheckBox55") Then
            sz照顾者问题.AppendFormat("{0} {1}", sz照顾者问题, "呼叫铃置于病人可取得之处□f.适时使用约束带")
        ElseIf IsCheckButtonChecked("XCheckBox56") Then
            sz照顾者问题.AppendFormat("{0} 其他{1}", sz照顾者问题, Me.GetControlText("XTextBox10"))
        End If
        keyDataList.Add(New KeyData("照顾者问题", sz照顾者问题.ToString()))
        '病人问题
        Dim sz病人问题 As StringBuilder = New StringBuilder()
        If IsCheckButtonChecked("XCheckBox57") Then
            sz病人问题.AppendFormat("{0} {1}", sz病人问题, "教导并确认病人知道如何寻求协助")
        ElseIf IsCheckButtonChecked("XCheckBox58") Then
            sz病人问题.AppendFormat("{0} {1}", sz病人问题, "教导并确认病人知道自己安全活动之能力范围")
        ElseIf IsCheckButtonChecked("XCheckBox59") Then
            sz病人问题.AppendFormat("{0} {1}", sz病人问题, "教导并确认病人知道跌倒后果之严重性")
        ElseIf IsCheckButtonChecked("XCheckBox60") Then
            If IsRadioButtonChecked("XRadioButton26") Then
                sz病人问题.AppendFormat("{0} {1}:{2}", sz病人问题, "照顾者离开病患时需告知护理人员", "抗拒/不合作")
            ElseIf IsRadioButtonChecked("XRadioButton27") Then
                sz病人问题.AppendFormat("{0} {1}:{2}", sz病人问题, "照顾者离开病患时需告知护理人员", "害怕")
            ElseIf IsRadioButtonChecked("XRadioButton28") Then
                sz病人问题.AppendFormat("{0} {1}:{2}", sz病人问题, "照顾者离开病患时需告知护理人员", "沮丧/抑郁")
            ElseIf IsRadioButtonChecked("XRadioButton29") Then
                sz病人问题.AppendFormat("{0} {1}:{2}", sz病人问题, "照顾者离开病患时需告知护理人员", "愤怒/赌气")
            ElseIf IsRadioButtonChecked("XRadioButton30") Then
                sz病人问题.AppendFormat("{0} {1}:其他{2}", sz病人问题, "照顾者离开病患时需告知护理人员", Me.GetControlText("XTextBox11"))
            End If
        ElseIf IsCheckButtonChecked("XCheckBox61") Then
            sz病人问题.AppendFormat("{0} {1}", sz病人问题, "改善并促进病人与照顾者关系之良性互动")
        ElseIf IsCheckButtonChecked("XCheckBox56") Then
            sz病人问题.AppendFormat("{0} 其他{1}", sz病人问题, Me.GetControlText("XTextBox12"))
        End If
        keyDataList.Add(New KeyData("病人问题", sz病人问题.ToString()))
        '设备问题
        Dim sz设备问题 As StringBuilder = New StringBuilder()
        If IsCheckButtonChecked("XCheckBox63") Then
            sz设备问题.AppendFormat("{0} {1}", sz设备问题, Me.GetControlText("XTextBox13"))
            keyDataList.Add(New KeyData("设备问题", sz设备问题.ToString()))
        End If

        '其他
        If IsCheckButtonChecked("XCheckBox64") Then
            keyDataList.Add(New KeyData("检讨及改进项目 其他", Me.GetControlText("XTextBox14")))
        End If
        '近期是否曾发生跌倒
        If IsRadioButtonChecked("XRadioButton31") Then
            keyDataList.Add(New KeyData("近期是否曾发生跌倒", "是"))
        ElseIf IsRadioButtonChecked("XRadioButton32") Then
            keyDataList.Add(New KeyData("近期是否曾发生跌倒", "否"))
        End If
        '医疗纠纷机会
        If IsRadioButtonChecked("XRadioButton33") Then
            keyDataList.Add(New KeyData("医疗纠纷机会", "可能性低"))
        ElseIf IsRadioButtonChecked("XRadioButton34") Then
            keyDataList.Add(New KeyData("医疗纠纷机会", "有可能"))
        ElseIf IsRadioButtonChecked("XRadioButton35") Then
            keyDataList.Add(New KeyData("医疗纠纷机会", "极可能"))
        End If
        '填表人
        keyDataList.Add(New KeyData("填表人", Me.GetControlText("XTextBox15")))
        '护士长
        keyDataList.Add(New KeyData("护士长", Me.GetControlText("XTextBox16")))
        Return keyDataList
    End Function

    '更新表单中指定的数据
    Public Overrides Function UpdateFormData(ByVal param As String, ByVal data As Object) As Boolean
        Return True
    End Function
    Dim StrName As String
    '双击组件时发生。
    Private Sub XTextBox1_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Dim score As String = ""
        score = StrName
        If Me.ShowChildForm("885167", "XTextBox1", score) Then

            Dim control As Control = Me.FindControl("XTextBox1")
            If control IsNot Nothing Then
                control.Text = Split(score, ";")(0)
                control.Text += "分"
                ' control.Text = score

            End If

        End If
    End Sub

    '获取表单中指定的数据
    Public Overrides Function GetFormData(ByVal param As Object) As Object
        If param = "表单摘要" Then
            Return Me.GetFormSummary()
        End If
        Return Nothing
    End Function

    '获取表单摘要数据
    Public Function GetFormSummary() As String
        Dim control As Control = Me.FindControl("XTextBox1")
        If control IsNot Nothing Then
            Return control.Text
        End If
        Return String.Empty
    End Function
End Class